﻿using System;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using Microsoft.Practices.Prism.ViewModel;
using Microsoft.Practices.Prism.Logging;
using Microsoft.Practices.Prism.Regions;
using Microsoft.Practices.Prism.Events;

namespace SLIP.Core
{
    /// <summary>
    /// Base ViewModel class to encapsulate Notification
    /// </summary>
    public class SLIPViewModelBase : NotificationObject
    {
        //Reference to ionjected region.
        protected readonly IRegionManager _regionManager;

        //Reference to injected logger.
        protected ILoggerFacade _logger;

        //Reference to injected aggregator for event handling.
        protected IEventAggregator _aggregator;

        public SLIPViewModelBase()
        {
        }

        public SLIPViewModelBase(IRegionManager pManager, ILoggerFacade pLogger, IEventAggregator pAggregator)
        {
            _regionManager = pManager;
            _logger = pLogger;
            _aggregator = pAggregator;
        }

        protected override void RaisePropertyChanged(string propertyName)
        {
            base.RaisePropertyChanged(propertyName);
        } 
    }
}
